package com.pg.agent.engine.client.dto;

import com.alibaba.fastjson.JSONObject;
import com.pg.agent.engine.client.component.BubbleComponent;
import com.pg.agent.engine.client.message.OutPutMessage;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * SOP执行对象
 * @author huhuaping
 * @date 2023/11/15 14:24
 */
@Data
public class AgentExeDTO {

    /**
     * sopId
     */
    private Long sopId;

    /**
     * sopVersionId
     */
    private Long sopVersionId;

    /**
     * 用户DI
     */
    private Long userId;

    /**
     * 业务类型
     */
    private Integer bizType;

    /**
     * 业务对象
     */
    private String bizId;

    /**
     * 用户输入内容
     */
    private String content;

    /**
     * 会话ID
     */
    private String sessionId;

    /**
     * 参数
     */
    private Map<String, JSONObject> param = new HashMap<>();

    /**
     * sop自定义参数
     */
    private JSONObject userParam;

    /**
     * 是否有用户输入的参数标记
     */
    private boolean inParamFlag;

    /**
     * 调用类型 1.测试。2.部署
     */
    private Integer type;

    /**
     * saas应用id
     */
    private Long saasAppId;

    /**
     * 执行类型 1.直达，2.聚合
     */
    private Integer exeType;

    /**
     * 数据ID，每条数据唯一标识
     */
    private String dataId;

    /**
     * 数据处理类型，1：取消前一条回复，2：重新回答，3：重新编辑
     */
    private String dealMode;

    private OutPutMessage SOPCallVO;

    private boolean repeat;

    /**
     * 图片集合 格式[{"id":"","type":1,"name":xxx,"url":xxx,"desc":xxx,"otherInfo":xxx}]
     */
    private String imageList;

    /**
     * 文件集合 格式[{"id","type":1,"name":xxx,"url":xxx,"desc":xxx,"otherInfo":xxx}]
     */
    private String fileList;

    /**
     * 气泡组件 格式{"id":,"bubbleInfo":1,"type":xxx,"key":xxx,"url":xxx,"agentName":xxx}
     */
    private BubbleComponent bubbleComponent;


    /**
     * 是否为调试
     *
     * @return
     */
    public boolean isDebug() {

        if (type != null && type == 1) {
            return true;
        }
        return false;
    }
}
